package com.yf.exam.modules.paper.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
* <p>
* 试卷实体类
* </p>
*
* @author 聪明笨狗
* @since 2020-05-25 17:31
*/
@Data
@TableName("el_paper")
public class Paper extends Model<Paper> {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private String userId;

    /**
     * 规则ID
     */
    @TableField("exam_id")
    private String examId;

    /**
     * 考试标题
     */
    private String title;

    /**
     * 考试时长
     */
    @TableField("total_time")
    private Integer totalTime;

    /**
     * 用户时长
     */
    @TableField("user_time")
    private Integer userTime;

    /**
     * 试卷总分
     */
    @TableField("total_score")
    private BigDecimal totalScore;

    /**
     * 试卷及格分
     */
    @TableField("qualify_score")
    private BigDecimal qualifyScore;

    /**
     * 整卷客观分
     */
    @TableField("obj_score")
    private BigDecimal objScore;

    /**
     * 整卷主观分
     */
    @TableField("subj_score")
    private BigDecimal subjScore;

    /**
     * 用户总得分
     */
    @TableField("user_score")
    private BigDecimal userScore;

    /**
     * 用户主观分
     */
    @TableField("user_subj_score")
    private BigDecimal userSubjScore;

    /**
     * 用户客观分
     */
    @TableField("user_obj_score")
    private BigDecimal userObjScore;

    /**
     * 最后截止时间
     */
    @TableField("limit_time")
    private Date limitTime;

    /**
     * 实际切屏次数
     */
    @TableField("leave_times")
    private Integer leaveTimes;

    /**
     * 实际交卷时间
     */
    @TableField("hand_time")
    private Date handTime;

    /**
     * 交卷状态,0未交卷,1已交卷,2强制交卷
     */
    @TableField("hand_state")
    private Integer handState;


    /**
     * 是否需要阅卷
     */
    @TableField("review_require")
    private Boolean reviewRequire;

    /**
     * 阅卷状态,0未阅,1已阅,2部分已阅
     */
    @TableField("review_state")
    private Integer reviewState;

    /**
     * 阅卷人员
     */
    @TableField("review_user")
    private String reviewUser;

    /**
     * 阅卷评语
     */
    @TableField("review_msg")
    private String reviewMsg;

    /**
     * 阅卷时间
     */
    @TableField("review_time")
    private Date reviewTime;


    /**
     * 异常状态
     */
    @TableField("ex_state")
    private Integer exState;

    /**
     * 异常消息
     */
    @TableField("ex_msg")
    private String exMsg;

    /**
     * 成绩是否合格
     */
    private Boolean passed;

    /**
     * 成绩是否有效
     */
    private Boolean valid;

    /**
     * 重复考试之前的会被覆盖
     */
    private Boolean overwrite;


    /**
     * 所属部门
     */
    @TableField("dept_code")
    private String deptCode;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 修改人
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * AI试卷分析
     */
    @TableField("email_text")
    private String examText;
}
